GOTO
이 명령어는 배치 프로그램에서 사용자가 지정한 레이블에 의해 표시된 명령어 라인으로 직접 이동하기 위해 사용한다. 일단 지정된 레이블로 이동한 후에는 다음 라인에 있는 명령어를 처리한다.
GOTO 명령어가 단독으로 사용되면 무조건 지정된 레이블로 이동한다. 그러나, 일반적으로 GOTO 명령어는 IF 명령어와 함께 조건 분기를 위하여 사용된다. 즉, IF 명령어의 조건문을 만족하는 경우에는 지정된 레이블로 이동하고 조건문을 만족하지 않으면 다음 명령어 라인을 실행한다.
■ 사용법
GOTO label
■ 옵션 및 매개변수

label | DOS가 처리해야 할 다음 명령어 라인을 지정한다.

■ 사용상의 주의
☞ label에 적절한 값 사용하기
GOTO 명령어에서 사용하는 레이블로 스페이스를 포함한 모든 문자를 사용할 수 있다. 그러나 세미콜론(;)이나 등호(=)와 같은 기호는 사용할 수 없다.
세미콜론의 경우에는 배치 프로그램이나 Config.sys에서 해당 명령어 라인을 화면에 표시하지 않기 위해 사용된다.
☞ GOTO 명령어가 이용하는 레이블의 이름
GOTO 명령어는 명령어 라인의 맨 앞에 콜론(:)이 있으면 이를 레이블로 인식하는데, 각 레이블의 8글자만 인식한다. 따라서 각 레이블 이름이 처음 8자가 같은 경우에는 같은 레이블로 인식한다.
즉, 찾아갈 레이블에서 콜론을 포함한 처음 8자가 같으면 같은 레이블로 간주된다. ":HITHER01"과 ":HITHER02"는 모두 ":HITHER0"로 인식한다.
☞ 배치 프로그램 내에서의 label과 맞추기
GOTO 명령어 라인에서 지정한 레이블은 배치 프로그램의 레이블과 일치해야 하고, 배치 프로그램 내의 각 레이블은 반드시 콜론으로 시작해야 한다.
만약, 배치 프로그램에서 GOTO 명령어로 지정한 레이블을 포함하고 있지 않은 경우 배치 프로그램 실행이 중단되고, 다음과 같은 메시지가 나타난다.
Label not found
DOS는 콜론으로 시작하는 배치 프로그램 명령어 라인을 레이블로 인식한다. 그리고 레이블은 명령어로 인식하지 않는다.
즉, 콜론으로 시작하는 레이블에 명령어가 포함되어 있을지라도 DOS는 이 명령어를 실행하지 않는다.
☞ GOTO 명령어를 IF 명령어와 함께 사용하기
GOTO 명령어는 무조건적인 GOTO문과 조건적인 GOTO문으로 구분된다. 무조건적인 GOTO문은 단순히 다음 단계로 가기 위하여 사용하는 방법으로 다음과 같은 형식으로 사용된다.
goto small
. . . . . . . . .
:small
. . . . . . . . .
조건적인 GOTO문은 IF문과 함께 쓰이는데, 조건식을 만족하는 경우에 사용자가 지정한 레이블로 이동하고, 조건식을 만족하지 않는 경우에는 다음 명령어 라인을 실행한다.
■ 사용 예
다음의 배치 프로그램은 A: 드라이브에 있는 디스크를 포맷하는 것이다. 만약 포맷이 성공적인 경우 END라는 레이블로 직접 이동한다.
echo off
format a:
if not errorlevel 1 goto end
echo An error occured during formatting.
:end
echo End of Format